package com.ruoyi.tzai.mapper;

import java.util.List;
import com.ruoyi.tzai.domain.AIModelConfig;

/**
 * AI模型配置Mapper接口
 * 
 * @author tzai
 * @date 2025-10-27
 */
public interface AIModelConfigMapper 
{
    /**
     * 查询AI模型配置
     * 
     * @param modelId AI模型配置主键
     * @return AI模型配置
     */
    public AIModelConfig selectAIModelConfigByModelId(Long modelId);

    /**
     * 根据模型代码查询AI模型配置
     * 
     * @param modelCode 模型代码
     * @return AI模型配置
     */
    public AIModelConfig selectAIModelConfigByModelCode(String modelCode);

    /**
     * 查询默认AI模型配置
     * 
     * @return AI模型配置
     */
    public AIModelConfig selectDefaultAIModelConfig();

    /**
     * 查询AI模型配置列表
     * 
     * @param aiModelConfig AI模型配置
     * @return AI模型配置集合
     */
    public List<AIModelConfig> selectAIModelConfigList(AIModelConfig aiModelConfig);

    /**
     * 新增AI模型配置
     * 
     * @param aiModelConfig AI模型配置
     * @return 结果
     */
    public int insertAIModelConfig(AIModelConfig aiModelConfig);

    /**
     * 修改AI模型配置
     * 
     * @param aiModelConfig AI模型配置
     * @return 结果
     */
    public int updateAIModelConfig(AIModelConfig aiModelConfig);

    /**
     * 删除AI模型配置
     * 
     * @param modelId AI模型配置主键
     * @return 结果
     */
    public int deleteAIModelConfigByModelId(Long modelId);

    /**
     * 批量删除AI模型配置
     * 
     * @param modelIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAIModelConfigByModelIds(Long[] modelIds);

    /**
     * 增加调用统计
     * 
     * @param modelId 模型ID
     * @param success 是否成功
     * @return 结果
     */
    public int increaseCallCount(Long modelId, boolean success);

    /**
     * 清除所有默认标记
     * 
     * @return 结果
     */
    public int clearAllDefaults();
}

